#ifndef OScatterModifier_H__
#define OScatterModifier_H__

enum
{
	// Dynamic attributes defined on enum class PlugId
	sca_PLUGS = 1000,

	//////////////////////////////////////////////////////////////////////////
	// Object attributes -- DO NOT CHANGE, attribute keys on saved projects
	sca_START = 2000,
	
	// Attributes
	sca_ReferenceObjectAttribute,
	sca_StrandGroupPatternAttribute,
	sca_DistributionMethodAttribute,
	sca_RandomSeedAttribute,
	sca_DistributionChannelAttribute,
	sca_DistributionMapAttribute,
	sca_TargetWidthMethodAttribute,
	sca_UseBaseStrandShapeAttribute,
	sca_PerStrandChannelsAttribute,
	sca_PerStrandTextureCoordinatesAttribute,
	sca_PerVertexChannelsAttribute,
	sca_PerVertexTextureCoordinatesAttribute,
	sca_SeparatePerStrandTextureCoordinatesAttribute,
	sca_SeparatePerVertexTextureCoordinatesAttribute,
	sca_IgnoredStrandsChannelsAttribute,
	sca_IgnoredStrandsTextureCoordinatesAttribute,
	
	sca_TextureCoordinateGenerationMethodAttribute,
	sca_TextureAtlasGenerationMethodAttribute,
	sca_TextureAtlasChannelAttribute,
	sca_TextureAtlasMaxIslandCountAttribute,
	sca_TextureAtlasScalingMethodAttribute,
	sca_UseInputStrandGroupsAttribute,

	sca_OutputShapeMethodAttribute,

	//////////////////////////////////////////////////////////////////////////

	sca_END
};

enum
{
	sca_DistributionMethod_Random,
	sca_DistributionMethod_Channel,
	sca_DistributionMethod_Map,
	//
	sca_DistributionMethod_Count
};

enum
{
	sca_TargetWidthMethod_Reference,
	sca_TargetWidthMethod_InputWidth,
	sca_TargetWidthMethod_Proportional,
	//
	sca_TargetWidthMethod_Count
};

enum
{
	sca_PerStrandMode_None,
	sca_PerStrandMode_Base,
	sca_PerStrandMode_Scattered,
	sca_PerStrandMode_Both,
	//
	sca_PerStrandMode_Count
};

enum
{
	sca_TextureCoordinateGenerationMethod_None,
	sca_TextureCoordinateGenerationMethod_CopyReference,
	sca_TextureCoordinateGenerationMethod_CopyInput,
	sca_TextureCoordinateGenerationMethod_Atlas,
	//
	sca_TextureCoordinateGenerationMethod_Count
};

enum
{
	sca_TextureAtlasGenerationMethod_PerReferenceHair,
	sca_TextureAtlasGenerationMethod_PerStrandGroup,
	sca_TextureAtlasGenerationMethod_Channel,
	//
	sca_TextureAtlasGenerationMethod_count
};

enum
{
	sca_TextureAtlasScalingMethod_None,
	sca_TextureAtlasScalingMethod_Reference,
	sca_TextureAtlasScalingMethod_Input,
	//
	sca_TextureAtlasScalingMethod_Count
};

enum
{
	sca_OutputShapeMethod_Reference,
	sca_OutputShapeMethod_Input,
	sca_OutputShapeMethod_AdoptInputShape,
	sca_OutputShapeMethod_EnvelopAverage,
	//
	sca_OutputShapeMethod_Count
};

#endif
